机器人摆动功能开发

修订日期 修订版本 修订内容 修订人
2023.03.30 V0.1 初始化文档 刘刚
2023.04.19 V0.2 增加摆线调用示例 赵锦强

[TOC]

1. 摆动模式

​ 针对某个运动路径,摆动从路径开始一直持续到路径结束,摆动开始点和结束点都位于原始路径上。若摆动是周期性偏离原始路径两侧的运动,则原始路径运动时间是半个摆动周期的整数倍。

​ 摆动形状和焊接速度密切相关,焊接运动速度越快,摆动频率越快(在摆动步长一定的情况下)。摆动形状和摆动步长、幅值也相关,如下图所示:

image-20230330100905492

  • 摆动步长:摆动一个周期内运动的长度

  • 摆动幅值:摆动偏离原始轨迹的最大幅度(两侧幅值不一定相等)

    应结合机械臂的性能对摆动幅值进行限制

image-20230330101221739

2. 摆动平面

在焊接过程中,针对 CP(连续轨迹)运动,需定义一个基于工具的运动坐标系TTS来描述工具末端相对于焊缝的摆动方向,如下:

  • XTTSX_{TTS}: 路径的切线方向

  • $Y{TTS}$: 路径的切线方向和工具方向 + $Z{TOOL}$的正交向量方向

  • $Z{TTS}$: $X{TTS}$和$Y_{TTS}$的正交向量方向

注意:在焊接工艺中,路径切线方向和工具方向不能平行,否则TTS坐标系无法建立

​ 摆动平面的夹角指摆动轨迹(二维)相对于$X{TTS}$和$Y{TTS}$组成平面的夹角。该夹角的范围是(-$\pi$, $\pi$],夹角为0时,摆动平面和TTSXY平面重合。

image-20230330101915880

①摆动平面夹角为0° ②摆动平面夹角为0°,但工具倾角(焊接工艺角)发生变化 ③摆动平面转动90° ④摆动平面转动180°

如果两个对接工件的厚度不一致,则摆动平面应该偏向更厚的那个工件,使得更多的热量传导到厚的工件上,如下图所示:

image-20230330102046501

①摆动平面没有翻转 ②摆动平面翻转 α,使更多热量传导到厚板上

3. 摆动频率

摆动频率$f$对焊接质量有关键影响,主要取决于摆动步长$s$和焊接速度$v$。最大的摆动频率跟机械臂的动态特性有关(频率共振点和最大速度限制)。

摆动频率$f$[Hz]:= 焊接速度$v $× 1000 / (摆动步长$s $ × 60)

摆动步长$s$[mm]:= 焊接速度$v$ × 1000 / (摆动频率$f $ × 60)

摆动频率和摆动步长的参考值如下表所示:

image-20230330102406470

①允许的区域 ②不建议的区域 ③禁止的区域

4.参数接口

在路径属性PathProperty的复杂曲线运动属性CurvePropertysp属性中设置.

struct SuperimposedParameters
{
    bool        enable{false};          // 使能路径叠加功能(在运动路径的法平面内进行叠加)
    WeaveType   type;                   // 路径类型(针对焊接应用, 就是摆动类型,比如正弦,摆线)
    double      step;                   // 一个周期内在运动方向上移动的距离(摆动步长)
    Vector2d    amplitude;              // 一个周期内在运动叠加方向的最大幅值(不一定对称),当复用为摆线的幅值时,只用第一个元素
    Vector2d    holdDistance;           // 运动到最大幅值处保持的距离(不一定对称),当复用为摆线的宽度时,只用第一个元素
    double      angle;                  // 运动叠加方向与法平面的夹角,单位rad
    int         direction{0};           // 摆线起始摆动方向,0表示在路径方向上方,1表示在路径方向下方
}; // 叠加路径属性

enum WeaveType: int
{
    SINE        = 0,                   // 正弦波
    SPIRAL      = 1,                   // 摆线
    TRIANGLE    = 2,                   // 三角形
    TRAPEZOIDAL = 3,                   // 梯形
};// 摆动类型

其中,如果enable属性设置成true, 则表示使能路径叠加功能(摆焊).

5.调用示例

5.1 正弦波

ARAL::interface::PathProperty path_property;
path_property.describe_space = ARAL::interface::DescribeSpace::CARTESIAN;
path_property.curProp.type = ARAL::interface::Curvetype::LINE;
path_property.curProp.sp.enable = true;
path_property.curProp.sp.type = ARAL::interface::WeaveType::SINE;
path_property.curProp.sp.step = 0.01;
path_property.curProp.sp.amplitude = {0.005, 0.005};
path_property.curProp.sp.holdDistance = {0.0, 0.0};
path_property.curProp.sp.angle = 0.1;

5.2 摆线

ARAL::interface::PathProperty path_property;
path_property.describe_space = ARAL::interface::DescribeSpace::CARTESIAN;
path_property.curProp.type = ARAL::interface::Curvetype::LINE;
path_property.curProp.sp.enable = true;
property.curProp.sp.step = 0.03;
property.curProp.sp.type = ARAL::interface::WeaveType::SPIRAL;
property.curProp.sp.angle = 0.0;
property.curProp.sp.amplitude = {0.04,0.0};             //当复用为摆线的幅值时,只用第一个元素
property.curProp.sp.holdDistance = {0.03,0.0};            //当复用为摆线的宽度时,只用第一个元素
property.curProp.sp.direction = 0;                        //摆线起始摆动方向,0表示在路径方向上方,1表示在路径方向下方

6.其他说明

为了使焊缝更加均匀, 一般需要机器人在摆动到最大幅值处停留一段时间,如下图所示:

image-20230330103544253

算法只开放路径几何属性,所以软件需要根据焊接速度将保持时间变成保持距离。

results matching ""

    No results matching ""